package org.dromara.learning_xq.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.learning_xq.entity.AsViewingJobs;
import org.dromara.learning_xq.mapper.AsJobManagementMapper;
import org.dromara.learning_xq.mapper.AsViewingJobsMapper;
import org.dromara.learning_xq.service.AsViewingJobsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class AsViewingJobsServiceimpl extends ServiceImpl<AsViewingJobsMapper, AsViewingJobs> implements AsViewingJobsService {

    @Autowired
    private AsViewingJobsMapper asViewingJobsMapper;

    /**
     * 查询并返回所有的 AsViewingJobs 记录
     * <p>
     * 此方法通过调用 asViewingJobsMapper 的 selectList 方法，传入 null 参数
     * 以获取数据库中所有的 AsViewingJobs 记录无需任何条件限制
     *
     * @return 包含所有 AsViewingJobs 记录的列表
     */
    @Override
    public List<AsViewingJobs> selectAsViewingJobs() {
        return asViewingJobsMapper.selectList(null);
    }

    /**
     * 根据条件查询预约看房信息
     * 本方法通过接受状态和姓名两个参数，进行条件查询，以筛选出符合条件的预约看房记录
     * 使用了 MyBatis-Plus 的 QueryWrapper 类来构建查询条件，实现动态查询
     *
     * @param state 预约看房的状态，用于精确查询
     * @param name  预约看房人姓名，用于模糊查询
     * @return 返回符合条件的预约看房信息列表
     */
    @Override
    public List<AsViewingJobs> selectAsViewingJobsCondition(String state, String name) {
        // 创建一个 QueryWrapper 实例
        QueryWrapper<AsViewingJobs> queryWrapper = new QueryWrapper<>();

        // 状态条件查询
        if (state != null && !state.isEmpty()) {
            queryWrapper.eq("state", state);
        }

        // 姓名模糊查询
        if (name != null && !name.isEmpty()) {
            queryWrapper.like("name", name);
        }

        // 使用 MyBatis-Plus 的查询方法获取结果
        return asViewingJobsMapper.selectList(queryWrapper);
    }




}
